package com.lipiao.traveltreasure.service.travelTreasure;

import com.lipiao.traveltreasure.bean.travelTreasureBean.BaseUserBean;
import org.springframework.web.multipart.MultipartFile;

/**
 * 所有用户通用的服务层接口 接口重用 平台管理员，商家，用户
 * 1.登录 login
 * 2.注册 register
 * 3.修改密码 changePassword
 * 4.上传头像图片
 * 5.完善通用的个人信息(空添加，非空修改) 包括账号昵称等
 * 6.登出账号
 * 7.通过userId查找 返回对应的用户数据基类BaseUserBean
 */
public interface AllUserService {
    /**
     * 1.通用的登录接口
     * 通过用户类型userKind 区分登录用户
     *
     * @param username 用户名
     * @param password 密码
     * @param userKind 使用者通过userId区分 平台管理员，商家，用户
     * @return String 用户id
     */
    String login(String username, String password, int userKind);

    /**
     * 2.通用的注册接口
     * 通过用户类型userKind 区分注册用户
     *
     * @param username  用户名
     * @param password  密码
     * @param userKind  用户类型
     * @param strUserId 用户id
     */
    void register(String username, String password, int userKind, String strUserId);

    /**
     * 3.通用的修改密码接口
     *
     * @param username    用户名
     * @param password    密码
     * @param newPassword 新密码
     * @param userKind    用户类型
     */
    void changePassword(String username, String password, String newPassword, int userKind);

    /**
     * 4.通用的上传头像图片接口
     *
     * @param userId 用户id
     * @param photo  图片文件(MultipartFile类型)
     */
    void uploadPic(long userId, MultipartFile photo);


    void updateUserInformation();

    void loginOut();

    /**
     * 通过活动id查询指定用户基类信息
     *
     * @param userNumber 账号
     * @return 返回BaseUserBean用户基类
     */
    BaseUserBean findById(String userNumber);

}
